#include<iostream>
#include<cstring>
#include<iomanip>

using namespace std;
int a[26][26];

int main() { // 螺旋填数
    int x, y, n, count = 1;
    cin >> n;
    x = 1;
    y = n;
    a[x][y] = 1;
    while (count < n * n){ //填入第2个数到~第n*n个数 
        while (x + 1 <= n && !a[x + 1][y]) a[++x][y] = ++count;//向下填数
        while (y - 1 >= 1 && !a[x][y - 1]) a[x][--y] = ++count;//向左填数
        while (x - 1 >= 1 && !a[x - 1][y]) a[--x][y] = ++count;//向上填数
        while (y + 1 <= n && !a[x][y + 1]) a[x][++y] = ++count;//向右填数	
    }
    for (x = 1; x <= n; x++) {
        for (y = 1; y <= n; y++)
            cout << setw(4) << a[x][y];  // 四个间隔代替
        cout << endl;
    }
    return 0;
}

/*
  10  11  12   1
   9  16  13   2
   8  15  14   3
   7   6   5   4


   1  2  3    4
   12 13 14   5
   11 16 15   6
   10  9  8   7
*/